function formatNumberToThousands(num) {
    // 确保输入是数字
    if (typeof num !== 'number' || isNaN(num)) {
        throw new Error("输入必须是一个有效的数字");
    }

    // 将数字转换为字符串并去掉小数点后的多余零
    ///\.0$/这个正则表达式匹配的是字符串末尾的.0部分
    // .replace(/\.0$/, "")的意思是将匹配到的.0替换为空字符串（即删除它）。
    /* 
     \.：匹配小数点.字符
    0：直接匹配字符0。
    $：表示字符串的末尾
    */
    const numString = num.toString().replace(/\.0$/, "");//例如1234.56

    // 拆分成整数部分和小数部分
    //integerPart 将包含点号之前的所有字符（即整数部分）。
	//decimalPart 将包含点号之后的所有字符（即小数部分）。
    const [integerPart, decimalPart] = numString.split(".");

    
    let formattedInteger = "";// 使用数组存储分隔后的整数部分
    // 反向遍历整数部分
    for (let i = integerPart.length - 1; i >= 0; i--) {
        
        // 将字符添加到格式化结果中
        formattedInteger = integerPart[i] + formattedInteger;//字符往前拼，例如：4前面拼3
        
        // 每隔3位添加逗号 (integerPart.length - i) % 3 判断字符是否位于一个三位数
        if ((integerPart.length - i) % 3 === 0 && i !== 0) {
            formattedInteger = "," + formattedInteger;//第三个后，前面加个逗号
        }
    }

    // 如果有小数部分，则返回完整格式
    return decimalPart ? formattedInteger + "." + decimalPart : formattedInteger;
}

export default formatNumberToThousands;